introduction of discrete mathematics